--[[ 编码: WMS-24-13 名称: 出库单-重置汇总信息 作者:HAN 日期:2025-1-29 级别:固定 (说明本段代码在项目中不太会变化) 函数: ResetSumInfo 功能: 1) 系统自动生成行号 更改记录: --]] json = require ("json") mobox = require ("OILua_JavelinExt") m3 = require("oi_base_mobox") function ResetSumInfo ( strLuaDEID ) local nRet, strRetInfo -- 获取发货单号 nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_NO" ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..strRetInfo ) end local obj_attrs = json.decode( strRetInfo ) local oo_no = obj_attrs[1].value -- 出库单号 if ( oo_no == '' ) then return end local data_objs, n local strCondition = "S_OO_NO = '"..oo_no.."'" local strOrder = "N_ROW_NO" nRet, data_objs = m3.QueryDataObject(strLuaDEID, "Outbound_Detail", strCondition, strOrder ) if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "QueryDataObject失败!"..data_objs) end local object_attr local sum_qty = 0 local qty, volume, weight local sum_volume, sum_weight local item_set = {} sum_volume = 0 sum_weight = 0 if ( data_objs ~= '') then for n = 1, #data_objs do object_attr = m3.KeyValueAttrsToObjAttr(data_objs[n].attrs) qty = lua.StrToNumber( object_attr.F_QTY ) volume = lua.StrToNumber( object_attr.F_VOLUME ) weight = lua.StrToNumber( object_attr.F_WEIGHT ) sum_qty = sum_qty + qty sum_volume = sum_volume +qty*volume sum_weight = sum_weight +qty*weight if ( lua.IsInTable( object_attr.S_ITEM_CODE, item_set ) == false ) then table.insert( item_set, object_attr.S_ITEM_CODE ) end end local good_type_num = #item_set local strUpdate = "S_STATE = '定版', N_TOTAL_QTY = "..sum_qty..", N_GOOD_TYPE_NUM = "..good_type_num..", F_TOTAL_WEIGHT = "..sum_weight strUpdate = strUpdate..", F_TOTAL_VOLUME = "..sum_volume strCondition = "S_NO = '"..oo_no.."'" nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Outbound_Order", strCondition, strUpdate ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "更新【出库单】信息失败!"..strRetInfo ) end end end